✒️ 2025-05-15 14:24 내용 수정
사용자에게 오브젝트 목록을 보여주고 한 개 혹은 여러 개의 아이템을 선택하게 하는 클래스
JList 인스턴스이름 = new JList();
| 생성자 |
new JList(Object[] obj); |
new JList(ListModel model); |
new JList(Vector[] vector); |
- 리스트할 Object는 배열, 벡터, ListModel 등을 사용할 수 있다.
- 아래 예제는 오라클의 JList 설명이다.
// String 배열로 JList 만들기
String[] name = {"a", "b", "c"};
JList<String> list = new JList<String>(name);
// Vector를 사용하여 JList 만들기
Vector<Class<?>> vector = new Vector<Class<?>>();
Class<JList> rootClass = javax.swing.JList.class;
for (Class<?> cls = rootClass; cls != null; cls = cls.getSuperclass()) {
vector.addElement(cls);
}
JList<Class<?>> list = new JList<Class<?>>(vector);
// DefaultListModel을 사용하여 JList 만들기
DefaultListModel<Integer> model = new DefaultListModel<Integer>();
for (int i = 0; i < 10; i++) {
model.addElement(i);
}
JList<Integer> list = new JList<Integer>(model);
| 메서드 |
설명 |
setListData(Object[] listData) |
목록에 표시할 데이터 배열을 설정 |
setModel(ListModel<E> dataModel) |
JList에 사용할 데이터 모델을 설정 |
getSelectedValue() |
현재 선택된 항목의 값을 반환 |
getSelectedValuesList() |
다중 선택 모드에서 현재 선택된 모든 항목의 값을 리스트로 반환 |
getSelectedIndices() |
현재 선택된 항목의 인덱스를 배열로 반환 |
setSelectionMode(int selectionMode) |
목록의 선택 모드를 설정 |
addListSelectionListener(ListSelectionListener listener) |
목록의 선택이 변경될 때 발생하는 이벤트를 처리하는 리스너를 추가 |
clearSelection() |
모든 선택을 지워 선택을 해제 |
setSelectedIndex(int index) |
주어진 인덱스에 해당하는 항목을 선택 |
setSelectedIndices(int[] indices) |
주어진 인덱스 배열에 해당하는 항목들을 선택 |
setSelectedValue(Object anObject, boolean shouldScroll) |
주어진 값에 해당하는 항목을 선택하며, 스크롤 여부를 지정 |
ensureIndexIsVisible(int index) |
주어진 인덱스에 해당하는 항목이 보이도록 스크롤 |
setLayoutOrientation(int layoutOrientation) |
목록의 레이아웃 방향을 설정 |
setCellRenderer(ListCellRenderer<? super E> cellRenderer) |
목록의 각 항목을 렌더링하는데 사용할 셀 렌더러를 설정 |
setVisibleRowCount(int visibleRowCount) |
목록의 행 수를 설정하며, 스크롤바가 필요한 경우에만 스크롤바를 표시 |
- SelectionMode를 설정할 때는 ListSelectionModel 인터페이스에 저장된 상수를 사용한다.
| 상수 |
설명 |
| SINGLE_SELECTION |
단일 선택 모드: 하나의 항목만 선택 가능 |
| SINGLE_INTERVAL_SELECTION |
단일 구간 선택 모드: 연속된 항목들 중 하나의 구간만 선택 가능 |
| MULTIPLE_INTERVAL_SELECTION |
다중 구간 선택 모드: 여러 구간의 항목을 선택 가능 |
ListModel 클래스
JList에 들어갈 데이터를 저장하는 클래스
- 주로 DefaultListModel로 구현한다.
DefaultListModel<E> 인스턴스이름 = new DefaultListModel<E>();
| 메서드 |
설명 |
addElement(E element) |
목록에 새로운 요소를 추가 |
add(int index, E element) |
지정된 인덱스에 새로운 요소를 추가 |
removeElement(Object obj) |
목록에서 주어진 요소를 제거 |
remove(int index) |
지정된 인덱스에 있는 요소를 제거 |
removeAllElements() |
목록의 모든 요소를 제거합니다. |
clear() |
목록의 모든 요소를 제거 |
get(int index) |
지정된 인덱스에 있는 요소를 반환 |
setSize(int newSize) |
목록의 크기를 지정된 값으로 설정 |
insertElementAt(E element, int index) |
지정된 인덱스에 새로운 요소를 삽입 |
indexOf(Object obj) |
주어진 요소의 인덱스를 반환. 없으면 -1을 반환 |
contains(Object obj) |
목록이 주어진 요소를 포함하고 있는지 여부를 반환 |
isEmpty() |
목록이 비어있는지 여부를 반환 |
toArray() |
목록의 요소들을 배열로 반환 |
setSize(int newSize) |
목록의 크기를 변경. 크기를 늘릴 경우 null 또는 기본값으로 채움 |
toString() |
목록의 문자열 표현을 반환 |